#include "FTP.h"

char *host;
char *port;
#define SIZE 1024

//****************************************//
//				Demmander                 //
//****************************************//

/** Se connecter à un serveur FTP
 * @param host l'adresse du serveur ftp
 * @param port l'indificateur de la porte de ftp du serveur
 */
int connectToServer(char *host, char *port)
{
	struct sockaddr_in addr;
	struct hostent *h;
	int sock = -1;


	//Get l'adresse du serveur
	if (!inet_aton(host, &addr.sin_addr))
	{
		// pour transformer un nom de machine en structure in_addr
		h = gethostbyname(host);
		if (!h)
		{
			herror("gethostbyname");
			return -1;
		}
		else
		{
			// pour transformer des adresse IP en notation décimale pointée ("130.104.229.56") en format in_addr
			addr.sin_addr.s_addr=inet_addr(inet_ntoa(*((struct in_addr *)h->h_addr)));
		}
	}

	//Créer le socket
	//SOCK_STREAM : protocole TCP
	if((sock = socket(PF_INET, SOCK_STREAM, 0)) == -1)
	{
		herror("socket");
		return -1;
	}

	addr.sin_family=AF_INET; //sa_family: identifie la famille de protocoles; pour TCP/IP: AF_INET
	addr.sin_port=htons(atoi(port));

	//Connecter
	if(connect(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr)) == -1)
	{
		herror("connect");
		return -1;
	}
	printf("*Reussit connect au Server : %s -- port = %s\n", host, port);

	 //Send message
	char buff[SIZE];
    printf("Entre le message envoye : ");
    gets(buff);


    int len = send(sock, buff, strlen(buff), 0);
    if (len != (int)strlen(buff))
    {
    	herror("Send message to server");
    	return -1;
    }

    // Recieve responses
	if ((len = recv(sock, buff, SIZE, 0)) < 0)
	{
	   herror("Receive from server");
	   return -1;
	}

	buff[len] = '\0';
	printf("Message from server - %s", buff);

	return sock;
}
